<?php namespace Member\Model;

use Hdphp\Model\Model;

class User extends Model{

	//数据表
	protected $table = "shop_member";

	//完整表名
	protected $full = false;

	//自动验证
	protected $validate=array(
		//字段名: 表单字段名
		//验证方法: 函数或模型方法
		//验证条件: 1有字段时验证(默认)	2值不为空时验证  	3必须验证
		//验证时间: 1 插入时验证		2更新时空时验证 	3全部情况验证 (默认)
		//array('字段名','验证方法','提示信息',验证条件,验证时间),
		// array('username','required','账号不能为空',3,3),
		// array('password','required','密码不能为空',3,3),

		);

	//自动完成
	protected $auto=array(
		//字段名: 表单字段名
		//处理方法: 函数或模型方法
		//方法类型: string(字符串 默认)  function(函数)  method(模型方法)
		//验证条件: 1有字段时处理(默认)	2值不为空时 3必须处理
		//处理时间: 1 插入时  2更新时 3全部情况 (默认)
		//array('字段名','处理方法','方法类型',验证条件,验证时间),
		// array('login_at','time','function',1,3),

		);

	public function reg()
	{
		if(empty($_POST['username']))
		{
			$this->error = '帐号不能为空';
			return false;
		}
		if(empty($_POST['password']))
		{
			$this->error = '密码不能为空';
			return false;
		}
		if($_POST['password']!=$_POST['c_password'])
		{
			$this->error = '密码不一至';
			return false;
		}

		if(strtoupper($_POST['code'])!=$_SESSION['code'])
		{
			$this->error = '验证码输入错误';
			return false;
		}
		if($this->where("username='{$_POST['username']}'")->first())
		{
			$this->error = '帐号已存在';
			return false;
		}
		$token = substr(md5(time()),0,10);

		$password = md5($_POST['password'].$token);

		$sql = "INSERT INTO hd_shop_member SET username=? ,password=?,login_at=?,login_ip=?,token=?";

		$data=array($_POST['username'],$password,time(),$_SERVER['REMOTE_ADDR'],$token);

		$this->execute($sql,$data);

		$id = $this->getInsertId();

		$_SESSION['user_id']=$id;

		return true;
	}


	public function login()
	{

		if(empty($_POST['username']))
		{
			$this->error = '帐号不能为空';
			return false;
		}

		$user = $this->where('username',$_POST['username'])->first();
		if(!$user)
		{
			$this->error = '帐号不存在';
			return false;
		}
		if($user['password']!==md5($_POST['password'].$user['token']))
		{
			$this->error ='密码错误';

			return false;
		}
		if (isset($_POST['code']) && strtoupper($_POST['code'])!=$_SESSION['code'])
		{
			$this->error = '验证码错误';
			return false;
		}
		$data['user_id']=$user['user_id'];
		$data['login_at']=time();
		$data['login_ip']=$_SERVER['REMOTE_ADDR'];
		$this->save($data);
		$_SESSION['user_id']=$user['user_id'];
		$_SESSION['username']=$user['username'];
		return true;
	}







}